<?php

function get_img_name($full_name)
{
    $charIndex = strpos($full_name, '/');
    return substr($full_name, $charIndex + 1);
}

if (isset($_SESSION["user_level"]) && $_SESSION["user_level"] >= 10) {
    //$InputData['parent_id']为保留的编辑作品、鞋主秀、专题的id
    //$InputData['parent_type'] 1作品 2鞋主秀 3专题  //后面的已不需要 202反馈 203举报 204反馈/举报对话 205
    if (isset($InputData["edit_type"])) {
        if ($InputData["edit_type"] == 1 && isset($InputData["img_url"])) {
            // 获取编辑视图
            // 已不再使用 直接在相应的编辑器中处理
            //require("{$viewRoot}img_editor{$viewEx}");
        } // 作品、鞋主秀、专题编辑时上传的图片 将其放到相应临时文件夹中
        elseif ($InputData["edit_type"] == 2 && isset($InputData["img_url"]) &&
            isset($InputData['parent_id']) &&
            isset($InputData['parent_type'])
        ) {
            require_once("{$CfgPara->root}/class/respond_msg.func.php");
            //已剪裁的图片 保存到相应文件夹
            if ($InputData['parent_type'] == 1) {
                $img_folder = 'works_pic';
            } elseif ($InputData['parent_type'] == 2) {
                $img_folder = 'shoe_show_pic';
            } elseif ($InputData['parent_type'] == 3) {
                $img_folder = 'topic_pic';
            } else {
                echo respond_msg(0, '图片所属类型解析错误');
                goto page_end;
            }
            //将base64数据转为图片后保存到临时文件夹
            $base64Content = explode(',', $InputData['img_url'], 2);
            $result = array();
            if (count($base64Content) == 2) {
                if (preg_match('/^(data:\s*image\/(\w+);base64)/', $base64Content[0], $result)) {
                    $type = $result[2];
                    $new_short_name = $_SESSION['user_id'] . '_' . date('YmdHis') . '_' . rand();
                    $new_file = "{$CfgPara->root}/{$img_folder}/temp/" . $new_short_name;
                    $new_file_mini = $new_file . '.mini.' . $type;  //20170116 带水印的迷你图 420*315
                    $new_file_micro = $new_file . '.micro.' . $type; //20170116 添加 不带水印的微型图 120*90
                    $new_file_old = $new_file . '.old.' . $type; //20170116 不带水印的原尺图 1024*768
                    $new_file = $new_file . '.' . $type; //20170116 带水印的原尺图 1024*768

                    $new_file_http = "{$CfgPara->httproot}/{$img_folder}/temp/" . $new_short_name . '.mini.' . $type;
                    $new_short_name = $new_short_name . '.' . $type;
                    //上传的时候 浏览器会把内容中的+号替换为空格 此时再替换回来
                    $fileContent = str_replace(' ', '+', $base64Content[1]);
                    if (!file_put_contents($new_file_old, base64_decode($fileContent))) //将原始数据填入不带水印的原尺图 1024*768
                    {
                        echo respond_msg(0, '图片解析失败');
                        goto page_end;
                    }
                    //源文件在客户端中已压缩为1024*768 再将其压缩为420*315 作为缩略图（已修改 20170116）
                    //20170116 当前一些列表用的微型图（被服务器压缩后120*90）不打水印，其它迷你图420*315（手机端使用）
                    //原图1024*768（原始尺寸 PC端）均打水印 并在服务器中保留了原图（无水印）
                    require_once("{$CfgPara->root}/class/file_upload.class.php");
                    $ulTool = new uploadfile_c();
                    $ulTool->font_path = "{$CfgPara->root}/fonts/Microsoft_YaHei.ttf";
                    $result = $ulTool->img2thumb($new_file_old, $new_file_micro, 120, 90, 1); //生成不带水印的微型图 120*90
                    $result = $ulTool->imgWithText($new_file_old, $new_file); //生成带水印的原尺图 1024*768
                    $result = $ulTool->img2thumb($new_file, $new_file_mini, 420, 315, 1); //生成带水印的迷你图 420*315
                    echo respond_msg(1, $new_file_http);
                } else {
                    echo respond_msg(0, '获取图片格式信息失败');
                    goto page_end;
                }
            }
        } elseif ($InputData["edit_type"] == 3 &&
            isset($InputData['parent_id']) &&
            isset($InputData['parent_type'])
        ) {
            //用户从编辑器中退出删除掉临时文件夹中的文件(不再使用)
            //修改为当用户进入编辑器时，删除掉临时文件夹中的文件 20161121
            //已剪裁的图片 保存到相应文件夹
            if ($InputData['parent_type'] == 1) {
                $img_folder = 'works_pic';
            } elseif ($InputData['parent_type'] == 2) {
                $img_folder = 'shoe_show_pic';
            } elseif ($InputData['parent_type'] == 3) {
                $img_folder = 'topic_pic';
            } else {
                goto page_end;
            }
            $dir = "{$CfgPara->root}/{$img_folder}/temp";
            $list = scandir($dir); // 得到该文件下的所有文件和文件夹
            $str = "{$_SESSION['user_id']}_";//指定字符串
            foreach ($list as $file) {//遍历
                $file_name = $dir . "/" . $file;//生成含路径文件名
                if (!is_dir($file_name)) { //判断是不是文件夹
                    if (strpos($file, $str) == 0) {//如果文件名以用户Id加下划线开头 3_
                        @unlink($file_name);
                    }
                }
            }
        } elseif ($InputData["edit_type"] == 4 && isset($InputData["img_url"])) {
            //20170228 新增 在私信、举报或反馈新增的图片 客户端中压缩到1024*768
            // 此类图片仅生成原图与迷你图 不产生水印 迷你图大小为120*90
            require_once("{$CfgPara->root}/class/respond_msg.func.php");
            $img_folder = 'message_pic';
            //将base64数据转为图片后保存到临时文件夹
            $base64Content = explode(',', $InputData['img_url'], 2);
            $result = array();
            if (count($base64Content) == 2) {
                if (preg_match('/^(data:\s*image\/(\w+);base64)/', $base64Content[0], $result)) {
                    $type = $result[2];
                    $new_short_name = $_SESSION['user_id'] . '_' . date('YmdHis') . '_' . rand();
                    $new_file = "{$CfgPara->root}/{$img_folder}/temp/" . $new_short_name;
                    $new_file_mini = $new_file . '.mini.' . $type;
                    $new_file = $new_file . '.' . $type;
                    $new_file_http = "{$CfgPara->httproot}/{$img_folder}/temp/" . $new_short_name . '.mini.' . $type;
                    //上传的时候 浏览器会把内容中的+号替换为空格 再替换回来
                    $fileContent = str_replace(' ', '+', $base64Content[1]);
                    if (!file_put_contents($new_file, base64_decode($fileContent))) {
                        echo respond_msg(0, '图片解析失败');
                        goto page_end;
                    }
                    require_once("{$CfgPara->root}/class/file_upload.class.php");
                    $ulTool = new uploadfile_c();
                    $result = $ulTool->img2thumb($new_file, $new_file_mini, 120, 90, 1);
                    echo respond_msg(1, $new_file_http);
                } else {
                    echo respond_msg(0, '获取图片格式信息失败');
                    goto page_end;
                }
            }
        } elseif ($InputData["edit_type"] == 5 && isset($InputData["img_url"])) {
            // 20170518 新增 头像的图片 客户端中压缩到64*64
            // 此类图片仅生成头像 不产生水印 头像大小为64*64，头像最终保存于/avatar/{用户id}.jpeg 
            require_once("{$CfgPara->root}/class/respond_msg.func.php");
            $base64Content = explode(',', $InputData['img_url'], 2);
            $result = array();
            if (count($base64Content) == 2) {
                if (preg_match('/^(data:\s*image\/(\w+);base64)/', $base64Content[0], $result)) {
                    $type = $result[2];
                    $new_file = "{$CfgPara->root}/avatar/{$InputData['user_id']}.{$type}";
                    $new_file_http = "{$CfgPara->httproot}/avatar/{$InputData['user_id']}.{$type}";
                    // 上传的时候 浏览器会把内容中的+号替换为空格 再替换回来
                    $fileContent = str_replace(' ', '+', $base64Content[1]);
                    if (!file_put_contents($new_file, base64_decode($fileContent))) {
                        echo '图片解析失败';
                        goto page_end;
                    }
                    require_once("{$CfgPara->root}/class/file_upload.class.php");
                    $ulTool = new uploadfile_c();
                    // 将原图剪裁到64*64 虽然客户端已裁剪为64*64 但是客户端的js脚本是不可控的
                    $ulTool->img2thumb($new_file, $new_file, 64, 64, 1);
                    require_once("{$CfgPara->root}/model/user.m.php");
                    // 头像上传成功后，立即保存文件名信息
                    $myUser = new user_m($CfgPara->database);
                    $result = $myUser->user_avatar_save($new_file, $new_file_http, $InputData['user_id']);
                    echo $result;
                    goto page_end;
                } else {
                    echo '获取图片格式信息失败';
                    goto page_end;
                }
            }
        }
    }
} else {
    //无权限 跳转到登陆页面
    require("{$CfgPara->root}/controller/user_login.c.php");
}

page_end:;